// SpringSelRegular.h: interface for the SpringSelRegular class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_SPRINGSELREGULAR_H__3407A9D9_5F12_4591_B646_6186A9BABFA0__INCLUDED_)
#define AFX_SPRINGSELREGULAR_H__3407A9D9_5F12_4591_B646_6186A9BABFA0__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "Spring.h"
#include "Part.h"
#include "SelSpringMode.h"

class SpringSelRegular  
{
public:
	SpringSelRegular();
	virtual ~SpringSelRegular();

public:
	void WorkLoad(DOUBLE dbWorkLoad){
		m_dbWorkLoad = dbWorkLoad;
	}

	void HotDisplacement(DOUBLE dbDis){
		m_dbHotDisplacement = dbDis;
	}

	void LoadChangeCoefficient(DOUBLE dbCoefficient){
		m_dbLoadChangeCoefficient = dbCoefficient;
	}

	DOUBLE LoadChangeCoefficient(){
		return m_dbLoadChangeCoefficient;
	}

	DOUBLE HotDisplacement(){
		return m_dbHotDisplacement;
	}

	DOUBLE WorkLoad(){
		return m_dbWorkLoad;
	}

	virtual Spring* GetSpring() = 0;

	void SetOwner(Part* pPart){
		m_pPart = pPart;
	}

	Part* GetOwner(){
		return m_pPart;
	}

protected:
	void InitSelMode(SelSpringMode& mode);

private:
	Part* m_pPart;

private:
	DOUBLE m_dbWorkLoad;
	DOUBLE m_dbHotDisplacement;
	DOUBLE m_dbLoadChangeCoefficient;
};

#endif // !defined(AFX_SPRINGSELREGULAR_H__3407A9D9_5F12_4591_B646_6186A9BABFA0__INCLUDED_)
